A continuous data protection (“CDP”) system associated with a target system may capture changes to memory blocks associated with one or more changes in a file system or memory of the target system. The target system may, for example, be a server or other computerized system in which it may be advantageous to have the ability to create one or more snapshots of the current state of the file system or memory. The target system may operate one or more applications, which may be operable to create changes to the memory. The changes to the memory may be handled by a memory cache, which then may create one or more changes to the file system.
The target system may be operable to transmit each changed memory block to the CDP system. Either the target system or the CDP system may associate each changed block with a time stamp denoting the current time. The CDP may store the changed blocks and the associated time stamps in a file system or memory such as, for example, in one or more files on a hard disk drive or in a database. Should the file system or memory need to be restored, a time for restoration may be used. For example, the file system or memory may be recreated as it existed at a time T1. The CDP may be operable to recreate the file system or memory at time T1 using all of the blocks that the CDP received on or before time T1.
Problems with the above-described CDP systems may arise because one or more discrete blocks may not always encompass an entire change or transaction to the file system or memory. In other words, the memory changes created by one or more of the applications on the target system may not be fully embodied in the CDP system at time t1. A restore at time T1 may create a file system or memory that is internally inconsistent, and may also creating inconsistencies at the application level. For example, a block containing a part of file x.dat may have been transmitted to the CDP before time T1, but another block containing another part of file x.dat may have been transmitted to the CDP after time T1. Therefore, a restore of the file system or memory to time T1 may yield a partial change to file x.dat, possibly resulting in a file corruption issue. Or, the file x.dat may have been fully transmitted to the CDP, but metadata describing file x.dat may not have been transmitted to the CDP system, or vice versa. So the metadata describing the file may be inconsistent with the file itself if a restore is required between a time the file was transferred to the CDP system and a time the metadata was transferred to the CDP system. This problem may be replicated across many different files. The file system or memory thus must be placed into a consistent state before it may be fully restored for use. This operation of placing a file system or memory in a consistent state may be very expensive in terms of time and processor or memory resources.
In view of the foregoing, it may be understood that there are significant problems and shortcomings associated with current continuous data protection technologies.